export class PersonV2 {
  private name: string;
  private wears: string;
  constructor(name: string) {
    this.name = name;
    this.wears = "";
  }

  Wear(finery: Finery) {
    this.wears += finery.Wear();
  }

  public Show(): string {
    const outStr = `${this.name} 装扮是 ${this.wears}`;
    this.wears = "";
    return outStr;
  }
}

export interface Finery {
  Wear(): string;
}

export class Shirts implements Finery {
  Wear(): string {
    return "T恤 ";
  }
}

export class BigTrouser implements Finery {
  Wear(): string {
    return "垮裤 ";
  }
}

export class Sneakers implements Finery {
  Wear(): string {
    return "破球鞋 ";
  }
}

export class Suit implements Finery {
  Wear(): string {
    return "西装 ";
  }
}
export class Tie implements Finery {
  Wear(): string {
    return "领带 ";
  }
}
export class LeatherShoes implements Finery {
  Wear(): string {
    return "皮鞋 ";
  }
}
